package com.management.dao;

import com.management.po.PurchaseForm;
import com.management.vo.PurchaseFormVO;
import org.apache.ibatis.annotations.Param;
import java.util.List;

/**
 * @author zwh
 * 采购单数据访问接口
 */
public interface PurchaseFormDao {

    /**
     * 查询全部
     * @return 订购单集合对象
     */
    public List<PurchaseFormVO> findAll();

    /**
     * 根据公司编号查询
     * @param companyId 公司编号
     * @return 订购单集合对象
     */
    public List<PurchaseFormVO> findByCompanyId(int companyId);

    /**
     * 根据公司编号，职员编号查找
     * @param companyId 公司编号
     * @param userId 职员编号
     * @return 订购单集合对象
     */
    public List<PurchaseFormVO> findByCompanyAndUserId(@Param("companyId") int companyId, @Param("userId") int userId);

    /**
     * 根据物品编号查询
     * @param materialsId 物品编号查询
     * @return 订购单集合对象
     */
    public List<PurchaseFormVO> findByMaterialsId(int materialsId);

    /**
     * 根据公司编号，表状态编号查询
     * @param companyId
     * @param formStatsId
     * @return
     */
    public List<PurchaseFormVO> findByCompanyAndFormStatsId(@Param("companyId")int companyId,@Param("formStatsId")int formStatsId);

    /**
     * 根据采购单编号查询
     * @param purchaseFormId 采购单编号
     * @return 采购单对象
     */
    public PurchaseFormVO findBy(String purchaseFormId);

    /**
     * 新增
     * @param purchaseForm 采购表对象
     * @return 受影响行数
     */
    public int add(PurchaseForm purchaseForm);

    /**
     * 更新采购表
     * @param purchaseForm 采购表对象
     * @return 受影响行数
     */
    public int update(PurchaseForm purchaseForm);

    /**
     * @param purchaseForm 采购列表对象
     * @return 受影响行数
     */
    public int delete(String purchaseFormId);
}
